home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1986-03-08 | 10.5 KB | 325 lines |
- 5 REM =================== PROGRAM LOADING ROUTINE ============================
- 10 CLS:COLOR 3,0:KEY OFF
- 15 CLEAR,,2500
- 20 DIM A$(50):DIM B(50,30):DIM C(485,10):DIM D(50,6)
- 25 DIM CAL$(485):DIM WK$(69)
- 26 LOCATE 9,31:PRINT "--VACATION SCHEDULE--"
- 27 LOCATE 10,35:PRINT"** LOADING **"
- 28 LOCATE 11,39:PRINT "WAIT !"
- 30 OPEN "VACCAL" FOR INPUT AS #1
- 35 FOR Z=1 TO 485:INPUT#1,CAL$(Z):NEXT Z
- 40 FOR Z=1 TO 69:INPUT #1,WK$(Z):NEXT Z
- 45 CLOSE#1
- 50 OPEN"VACDATA.1"FOR INPUT AS#2
- 55 FOR Z=1 TO 50:INPUT #2,A$(Z)
- 60 FOR Y=1 TO 6:INPUT #2,D(Z,Y):NEXT Y
- 65 NEXT Z:CLOSE#2
- 68 OPEN"VACDATA.2"FOR INPUT AS#3
- 70 FOR Z=1 TO 50
- 75 FOR Y=1 TO 30:INPUT #3,B(Z,Y):NEXT Y
- 80 NEXT Z
- 83 FOR Z=1 TO 485
- 85 FOR Y=1 TO 10:INPUT #3,C(Z,Y):NEXT Y
- 90 NEXT Z:CLOSE#3
- 190 SOUND 523,8:SOUND 1046,8:SOUND 130,10
- 195 REM ========================= MENU MODULE ================================
- 200 CLS:COLOR 3:PRINT STRING$(80,61);
- 202 ON KEY(9) GOSUB 2000:KEY(9) ON
- 205 COLOR 12:PRINT TAB(30)"MENU";TAB(74)"(200)"
- 207 COLOR 3:PRINT TAB(24)"VACATION SCHEDULE"
- 210 PRINT STRING$(80,61);
- 215 COLOR 14:PRINT TAB(20)"1:ENTER INDIVIDUAL SCHEDULE";TAB(74)"(600)":PRINT
- 220 PRINT TAB(20)"2:CANCEL INDIVIDUAL SCHEDULE";TAB(74)"(800)":PRINT
- 225 PRINT TAB(20)"3:ENTER ROSTER AND CONFLICTS";TAB(74)"(300)"
- 227 COLOR 3:PRINT TAB(19) STRING$(36,45)
- 230 PRINT TAB(20)"4:READ INDIVIDUAL SCHEDULE";TAB(74)"(700)":PRINT
- 232 PRINT TAB(20)"5:READ WEEKLY SCHEDULE";TAB(74)"(500)":PRINT
- 235 PRINT TAB(20)"6:READ ROSTER AND CONFLICTS";TAB(74)"(400)":PRINT
- 240 PRINT TAB(20)"7:READ LIST OF OPEN/CLOSED DAYS";TAB(74)"(900)"
- 242 PRINT TAB(19) STRING$(36,45)
- 243 COLOR 12:PRINT TAB(19)"10:DELETE ALL VACATION DATA &RESET";TAB(74)"(5000)"
- 244 PRINT
- 245 PRINT TAB(19)"12:DELETE VACATION CALENDER & RESET";TAB(74)"(5100)":COLOR 3
- 250 PRINT STRING$(80,61);
- 255 INPUT "ENTER MENU NUMBER:----OR ENTER (0) TO EXIT PROGRAM: ----OR ENTER (20) TO BACKUP DATA:",M
- 256 IF M=20 THEN 6000
- 257 IF M=0 THEN SYSTEM
- 260 ON M GOTO 600,800,300,700,500,400,900,200,200,5000,200,5100
- 295 REM ================= ROSTER ENTRY MODULE ================================
- 300 CLS:GOSUB 3000:PRINT TAB(30)"***VACATION PRIORITY LIST***"
- 305 PRINT STRING$(80,61);
- 310 INPUT "ENTER NUMBER OF NAMES TO LIST:";R
- 315 INPUT "ENTER FIRST SEQUENTIAL SENIORITY NO.(1 TO 50)";S
- 320 PRINT STRING$(80,61);
- 325 FOR Z=S TO S+R-1
- 330 PRINT Z;:INPUT"ENTER NAME:";A$(Z)
- 335 FOR X=1 TO 6
- 340 INPUT "ENTER CONFLICT# (0 IF NONE)";D(Z,X)
- 345 IF D(Z,X)=0 THEN 355
- 350 NEXT X
- 355 NEXT Z
- 360 GOSUB 1000
- 365 GOTO 200
- 395 REM ================= ROSTER READOUT MODULE ==============================
- 400 CLS:X=1:GOSUB 3000
- 402 N=0
- 405 FOR Z=1 TO 24:PRINT TAB(38) CHR$(179):NEXT:LOCATE 1,1
- 410 FOR Z=1 TO 50
- 420 IF A$(Z)="" THEN 480
- 425 IF Z=24 THEN X=40:N=0
- 430 N=N+1:LOCATE N,X:PRINT Z;
- 435 PRINT A$(Z);
- 437 LOCATE CSRLIN,15+X
- 440 FOR Y=1 TO 6
- 450 IF D(Z,Y)=0 THEN 470
- 460 PRINT USING "###";D(Z,Y);:NEXT Y
- 470 NEXT Z
- 480 LOCATE 25,23:INPUT"",X
- 490 GOTO 200
- 495 REM ================= SCHEDULE READOUT MODULE ============================
- 500 CLS
- 502 PRINT"**WEEKLY VACATION SCHEDULE**"
- 503 COLOR 12:INPUT"DO YOU WANT HARD COPY?(Y/N)",HC$:COLOR 3
- 505 INPUT "ENTER WEEK# (1-70) OR ENTER A MONDAY DATE (mm-dd-yy)";X$:CLS
- 506 IF LEN(X$)<3 THEN X=VAL(X$):GOTO 510
- 507 FOR X=1 TO 69:IF WK$(X)=X$ THEN 510
- 508 NEXT X
- 509 IF X=70 THEN PRINT "INVALID DATE--ENTER AGAIN":GOTO 505
- 510 PRINT TAB(18)"*** VACATION SCHEDULE-WEEK #";X$;"***":PRINT STRING$(68,61)
- 512 IF HC$="Y"THEN LPRINT TAB(20)"*** VACATION SCHEDULE-WEEK#";X$;"***":LPRINT STRING$(68,61)
- 515 FOR Y=1 TO 485
- 520 IF MID$(CAL$(Y),3,8)=WK$(X) THEN 530
- 525 NEXT Y
- 530 FOR N=Y TO Y+4:PRINT" ";MID$(CAL$(N),1,2);":";MID$(CAL$(N),3,5),:NEXT N
- 535 FOR S=1 TO 5:PRINT "------------",:NEXT S
- 544 XX=1:YY=5
- 545 FOR N=Y TO Y+4
- 550 FOR Z=1 TO 10
- 552 LOCATE YY,XX
- 554 IF C(N,Z)<>0 THEN PRINT A$(C(N,Z))
- 555 IF C(N,Z)=0 THEN 558
- 557 YY=YY+1
- 558 NEXT Z
- 559 IF Z>=10 THEN YY=5:XX=XX+14
- 560 NEXT N
- 562 XX=1:FOR N=Y TO Y+4
- 564 IF MID$(CAL$(N),11,2)="HL"THEN LOCATE 5,XX:PRINT "** HOLIDAY**";
- 566 XX=XX+14:NEXT N
- 570 LOCATE 24,1:PRINT STRING$(68,61);
- 572 IF HC$="Y" THEN 576
- 573 LOCATE 25,1:INPUT"READ ANOTHER WEEK?(Y/N):",I$
- 574 IF I$="Y" THEN 500
- 575 GOTO 200
- 576 X=1:FOR N=Y TO Y+4:LPRINT TAB(X) MID$(CAL$(N),1,2);":";MID$(CAL$(N),3,5);
- 577 X=X+14:NEXT N
- 578 X=1:FOR S=1 TO 5:LPRINT TAB(X)"------------";:X=X+14:NEXT S
- 580 X=1:FOR N=Y TO Y+4
- 581 IF MID$(CAL$(N),11,2)<>"HL" THEN X=X+14
- 582 IF MID$(CAL$(N),11,2)="HL"THEN LPRINT TAB(X)"**HOLIDAY**";:X=X+14
- 583 NEXT N
- 584 FOR Z=1 TO 10:X=1
- 585 FOR N=Y TO Y+4
- 586 IF C(N,Z)<>0 THEN LPRINT TAB(X)A$(C(N,Z));:X=X+14
- 587 IF C(N,Z)=0 THEN X=X+14
- 588 NEXT N
- 589 NEXT Z
- 590 LPRINT CHR$(10);:LPRINT STRING$(68,61)
- 592 FOR N=1 TO 5:LPRINT CHR$(10);:NEXT N:GOTO 573
- 595 REM ============== WEEKLY SCHEDULE INPUT MODULE ==========================
- 600 CLS:W=1
- 605 PRINT TAB(20)"**VACATION SCHEDULE INPUT**"
- 608 PRINT STRING$(80,61);
- 609 GOSUB 3000
- 610 PRINT "ENTER LAST NAME:";:COLOR 12:INPUT"",N$:COLOR 3
- 611 FOR ZZ=1 TO 50:IF A$(ZZ)=N$ THEN Z=ZZ:ZZ=50:GOTO 613
- 612 IF ZZ=50 AND A$(ZZ)<>N$ THEN LOCATE 3,1:PRINT"INVALID NAME:";:GOTO 610
- 613 NEXT ZZ
- 614 PRINT "ENTER DATE OF FIRST VACATION DAY (mm-dd-yy):";:COLOR 12:INPUT"",DAY$:COLOR 3
- 616 FOR YY=1 TO 485:IF MID$(CAL$(YY),3,8)=DAY$ THEN Y=YY:YY=485
- 617 NEXT YY
- 618 PRINT "ENTER NO. OF CONSECUTIVE VACATION DAYS:";:COLOR 12:INPUT"",N:NN=N:COLOR 3
- 619 ON ERROR GOTO 5500
- 620 DIM DAYS(30):FOR X=Y TO Y+N-1
- 621 IF MID$(CAL$(X),1,1)="S" THEN N=N+1
- 622 IF MID$(CAL$(X),1,1)="S" THEN 630
- 623 IF MID$(CAL$(X),11,2)="HL" THEN N=N+1
- 624 IF MID$(CAL$(X),11,2)="HL" THEN 630
- 626 DAYS(W)=X:W=W+1
- 627 IF DAYS(NN)<>0 THEN 635
- 630 NEXT X
- 632 IF DAYS(NN)=0 THEN ERASE DAYS:W=1:GOTO 620
- 635 PRINT STRING$(80,61);
- 636 FOR X=Y TO Y+N-1
- 637 FOR W=1 TO 30:IF B(Z,W)=X THEN PRINT "INVALID--DUPLICATE DATE SCHEDULED--PRESS ANY KEY/ENTER TO RE-SCHEDULE":INPUT "",I$:GOTO 694
- 638 NEXT W
- 639 NEXT X
- 640 FOR W=1 TO 30
- 642 IF DAYS(W)=0 THEN 658
- 645 PRINT MID$(CAL$(DAYS(W)),1,2);": ";MID$(CAL$(DAYS(W)),3,8);" (";
- 650 FOR M=1 TO 10:IF C(DAYS(W),M)=0 THEN 652
- 651 NEXT M
- 652 PRINT M-1;") "
- 654 IF (M-1)=>4 THEN LOCATE CSRLIN-1,20:PRINT "<CONFLICT:";M-1;"SCHEDULED!"
- 656 NEXT W
- 658 LOCATE 7,40
- 660 FOR W=1 TO 30:IF DAYS(W)=0 THEN 674
- 662 FOR N=1 TO 4:IF D(Z,N)=0 THEN 672
- 664 FOR M=1 TO 10
- 666 IF C(DAYS(W),M)=D(Z,N)THEN LOCATE CSRLIN,46:PRINT "CONFLICT WITH:";A$(D(Z,N));":";MID$(CAL$(DAYS(W)),3,8)
- 668 NEXT M
- 670 NEXT N
- 672 NEXT W
- 674 LOCATE 21,1:PRINT STRING$(80,61);
- 676 INPUT "APPROVE SCHEDULE?(Y/N)";I$
- 677 LOCATE 23,1
- 678 IF I$="N" THEN PRINT"SCHEDULE NOT APPROVED FOR PROCESSING-RESCHEDULE":GOTO 694
- 682 FOR Y=1 TO 30:IF B(Z,Y)=0 THEN 686
- 683 NEXT Y
- 686 FOR W=1 TO 30:IF DAYS(W)=0 THEN 690
- 688 B(Z,Y)=DAYS(W):Y=Y+1:NEXT W
- 690 W=1
- 691 FOR Y=1 TO 10:IF C(DAYS(W),Y)=0 THEN GOTO 698
- 692 NEXT Y
- 693 GOSUB 4000
- 694 LOCATE 22,30:PRINT"*PROCESSING*":GOSUB 1500
- 696 ERASE DAYS:LOCATE 25,1:INPUT"PRESS ANY KEY/ENTER TO CONTINUE ",I$:GOTO 200
- 698 C(DAYS(W),Y)=Z:W=W+1:IF DAYS(W)<>0 THEN 691 ELSE GOTO 693
- 699 REM ============== INDIVIDUAL SCHEDULE READOUT MODULE ====================
- 700 CLS:GOSUB 3000
- 705 INPUT "TO READ VACATION SCHEDULE--ENTER LAST NAME";N$
- 710 FOR ZZ=1 TO 50:IF A$(ZZ)=N$ THEN Z=ZZ:ZZ=50:CLS:PRINT TAB(20)"VACATION SCHEDULE FOR: ";A$(Z):GOTO 720
- 715 IF ZZ=50 THEN PRINT "INVALID NAME--ENTER AGAIN":GOTO 705
- 720 NEXT ZZ
- 725 PRINT STRING$(68,61)
- 730 FOR Y=1 TO 30
- 735 IF B(Z,Y)<>0 THEN PRINT MID$(CAL$(B(Z,Y)),1,2);":";MID$(CAL$(B(Z,Y)),3,8),
- 740 IF B(Z,Y)=0 THEN Y=30
- 745 NEXT Y
- 747 IF POS(0)<>1 AND POS(0)<60 THEN LOCATE CSRLIN+1,1
- 750 FOR N=1 TO 5:PRINT STRING$(11,45),:NEXT N
- 752 IF M=2 THEN RETURN
- 753 COLOR 12:LOCATE 23,1:INPUT"DO YOU WANT HARDCOPY?(Y/N):",HC$
- 754 COLOR 3:IF HC$="Y"THEN GOSUB 770
- 755 LOCATE 24,1:INPUT "READ ANOTHER SCHEDULE ?(Y/N):",I$
- 760 IF I$="Y"THEN 700
- 765 GOTO 200
- 770 LPRINT TAB(20)"VACATION SCHEDULE FOR: ";A$(Z)
- 772 LPRINT STRING$(68,61)
- 774 X=1:FOR Y=1 TO 30
- 776 IF B(Z,Y)<>0THEN LPRINT TAB(X)MID$(CAL$(B(Z,Y)),1,2);":";MID$(CAL$(B(Z,Y)),3,8);
- 778 IF B(Z,Y)=0 THEN Y=30:GOTO 782
- 780 X=X+14:IF X>60 THEN X=1
- 782 NEXT Y
- 784 LPRINT CHR$(141);:X=1:FOR N=1 TO 5:LPRINT TAB(X) STRING$(11,45);:X=X+14:NEXT N
- 786 FOR N=1 TO 10:LPRINT CHR$(10);:NEXT N
- 788 LPRINT CHR$(7):RETURN
- 795 REM ============== CANCEL INDIVIDUAL SCHEDULE MODULE =====================
- 800 CLS:GOSUB 3000
- 805 PRINT "TO CANCEL SCHEDULED VACATION--ENTER LAST NAME:";:COLOR 12:INPUT "",N$:COLOR 3:GOSUB 710
- 810 PRINT "DAYS MUST BE CANCELLED ONE AT A TIME":GOSUB 3000
- 815 PRINT "ENTER DATE TO CANCEL (mm-dd-yy) OR ENTER (0) TO STOP:";:COLOR 12:INPUT "",C$:COLOR 3
- 820 IF C$="0"THEN LOCATE 22,36:PRINT"**PROCESSING**":GOTO 860
- 825 FOR NN=1 TO 485:IF MID$(CAL$(NN),3,8)=C$ THEN N=NN:NN=485:GOTO 827
- 826 IF NN=485 THEN COLOR 12:PRINT "INVALID ENTRY--ENTER AGAIN":COLOR 3:GOTO 815
- 827 NEXT NN
- 830 FOR YY=1 TO 30:IF B(Z,YY)=N THEN B(Z,YY)=0:Y=YY:YY=30:GOTO 835
- 835 NEXT YY
- 840 FOR W=Y TO 29:B(Z,W)=B(Z,W+1):NEXT W
- 845 FOR Y=1 TO 10:IF C(N,Y)=Z THEN C(N,Y)=0:GOTO 850
- 847 NEXT Y
- 850 FOR W=Y TO 9:C(N,W)=C(N,W+1):NEXT W
- 855 GOTO 815
- 860 GOSUB 1500
- 865 CLS:M=4:GOTO 710
- 895 REM =============== NO. OF PEOPLE SCHEDULED MODULE =======================
- 900 CLS:GOSUB 3000:INPUT "ENTER MAX NUMBER ALLOWED TO BE SCHEDULED PER DAY (1 TO 10)";X:CLS
- 915 GOSUB 980
- 920 FOR Z=1 TO 485
- 921 IF Z=126 OR Z=252 OR Z=378 THEN GOSUB 960
- 922 IF MID$(CAL$(Z),1,1)="S" THEN 950
- 930 IF MID$(CAL$(Z),1,1)<>"S" THEN PRINT " ";MID$(CAL$(Z),3,5);" (";
- 932 IF MID$(CAL$(Z),11,2)="HL" THEN COLOR 12:PRINT "HL";:COLOR 3:PRINT ")",:GOTO 950
- 935 FOR Y=1 TO 10:IF C(Z,Y)=0 THEN 938
- 937 NEXT Y
- 938 COLOR 14
- 940 IF Y-1>=X THEN COLOR 12:PRINT STR$(Y-1);:COLOR 3:PRINT ")*",:GOTO 950
- 945 PRINT STR$(Y-1);:COLOR 3:PRINT ")",
- 950 NEXT Z
- 955 LOCATE 22,1:PRINT "KEY F5 FOR MENU":END:GOTO 200
- 960 PRINT STRING$(68,45)
- 965 INPUT "WANT TO CONTINUE? (Y/N)";I$
- 970 IF I$="N" THEN 200
- 975 CLS:GOSUB 980:RETURN
- 980 COLOR 14:PRINT TAB(10)"OPEN";:COLOR 3:PRINT "/";:COLOR 12:PRINT "CLOSED";:COLOR 3:PRINT " VACATION DAYS--( )=NO. OF PEOPLE SCHEDULED"
- 981 PRINT STRING$(68,61)
- 983 PRINT " MON"," TUE"," WED"," THU"," FRI"
- 984 FOR N=1 TO 5:PRINT "------------",:NEXT N
- 985 RETURN
- 995 REM =============== WRITE TO ROSTER FILE SUB-ROUTINE =====================
- 1000 OPEN "VACDATA.1" FOR OUTPUT AS #2
- 1005 FOR Z=1 TO 50:WRITE#2,A$(Z)
- 1010 FOR Y=1 TO 6:WRITE#2,D(Z,Y):NEXT Y
- 1015 NEXT Z:CLOSE#2
- 1060 RETURN
- 1095 REM =============== WRITE TO SCHEDULE FILE SUB-ROUTINE ==================
- 1500 OPEN"VACDATA.2" FOR OUTPUT AS #3
- 1505 FOR Z=1 TO 50
- 1510 FOR Y=1 TO 30:WRITE#3,B(Z,Y):NEXT Y
- 1520 NEXT Z
- 1525 FOR Z=1 TO 485
- 1530 FOR Y=1 TO 10:WRITE#3,C(Z,Y):NEXT Y
- 1535 NEXT Z:CLOSE#3
- 1537 SOUND 523,8:SOUND 1046,8:SOUND 130,10
- 1540 RETURN
- 2000 RETURN 200
- 2095 REM =================== ESCAPE SUB-ROUTINE ==============================
- 3000 LIN=CSRLIN
- 3005 COLOR 12:LOCATE 25,1:PRINT "TO EXIT---KEY F9/ENTER";:COLOR 3
- 3010 LOCATE LIN,1:RETURN
- 3095 REM =============== SCHEDULE APPROVAL SUB- ROUTINE ======================
- 4000 COLOR 12:PRINT "*SCHEDULE APPROVED*";
- 4010 INPUT "WANT TO SCHEDULE ANOTHER? (Y/N):";I$
- 4020 IF I$="Y" THEN ERASE DAYS:COLOR 3:GOTO 600
- 4025 IF I$="N" THEN COLOR 3:RETURN
- 4095 REM =============== SCHEDULE FILE RE-INITIALIZATION MODULE ==============
- 5000 CLS:PRINT "YOU ARE ABOUT TO ERASE ALL VACATION DATES FOR ALL PERSONNEL!!"
- 5005 INPUT "OK TO PROCEED? (Y/N)",I$
- 5010 IF I$<>"Y" THEN 200 ELSE 7000
- 5015 ERASE B:ERASE C:DIM B(50,30):DIM C(485,10)
- 5017 LOCATE 12,30:PRINT"**ERASING**":GOSUB 1500:LOCATE 12,30:PRINT " ":LOCATE 4,1
- 5020 INPUT "DO YOU WANT TO ERASE THE PERSONNEL ROSTER & CONFLICT LIST? (Y/N)",I$
- 5025 IF I$<>"Y" THEN RUN ELSE 5027
- 5027 ERASE A$:ERASE D:DIM A$(50):DIM D(50,6)
- 5028 LOCATE 12,30:PRINT"**ERASING**":GOSUB 1000
- 5030 RUN
- 5095 REM =============== CALENDAR FILE RE-INITIALIZATION MODULE ==============
- 5100 CLS:PRINT "YOU ARE ABOUT TO ERASE THE VACATION CALENDER!!"
- 5110 INPUT "DO YOU WANT TO PROCEED? (Y/N):",I$
- 5115 IF I$<>"Y" THEN 200
- 5120 CLS:CLEAR:CHAIN MERGE"VAC1",6000,DELETE 10-5030
- 5140 CLEAR:PRINT "TYPE RUN VAC"
- 5150 RUN"VAC"
- 5195 REM =============== ERROR TRAPPING ROUTINE (not required) ===============
- 5500 IF ERR=10 THEN ERASE DAYS:RESUME 620
- 5510 IF ERR=4 THEN PRINT"DATA FOR EARNED DAYS IS NOT PROGRAMMED":RESUME 5660
- 5595 REM =============== BACKUP ON EXIT ROUTINE ==============================
- 6000 CLS:LOCATE 10,1:PRINT "PLACE FORMATTED BACKUP DISKETTE IN DRIVE (A) AND STRIKE ANY KEY WHEN READY"
- 6002 IN$=INKEY$:IF IN$="" THEN 6002
- 6003 IF M=20 THEN LOCATE 12,38:PRINT "WAIT!"
- 6005 SHELL"COPY C:VAC*.* A:"
- 6010 SYSTEM
- 6095 REM =============== CALENDAR RE-INITIALIZATION ROUTINE ==================
- 7000 I$="":PRINT:PRINT"All Vacations Presently Sscheduled For The New Vacation Year":PRINT"Will Be Printed Out Prior To Erasing Last Year's Schedule"
- 7001 PRINT:PRINT"PLEASE TURN ON YOUR PRINTER NOW, THEN STRIKE THE ENTER KEY !!"
- 7002 INPUT I$:CLS
- 7003 LPRINT"VACATIONS PREVIOUSLY SCHEDULED":LPRINT"======================================":LPRINT
- 7004 FOR Z=1 TO 50
- 7005 IF A$(Z)="" THEN LPRINT CHR$(12):LPRINT CHR$(12):GOTO 5015
- 7015 FOR Y=1 TO 30
- 7020 IF B(Z,Y)>366 THEN LPRINT A$(Z):GOTO 7035
- 7025 NEXT Y
- 7030 NEXT Z
- 7035 LPRINT MID$(CAL$(B(Z,Y)),3,8);" ";
- 7040 Y=Y+1:IF Y=30 THEN 7045 ELSE 7035
- 7045 LPRINT:LPRINT:GOTO 7025
-